package com.bw.i_video.startup.tasks

import android.content.Context
import android.util.Log
import com.bw.i_video.startup.StartupTask
import com.bumptech.glide.Glide

/**
 * 图片加载器预初始化任务
 * 预初始化图片加载组件，提升后续图片加载性能
 */
class ImageLoaderInitTask : StartupTask {
    
    override val name: String = "ImageLoaderInitTask"
    override val priority: Int = 2
    override val canParallel: Boolean = true
    
    override fun execute(context: Context) {
        try {
            Log.d(TAG, "开始预初始化图片加载器")
            
            // 预初始化Glide
            preInitGlide(context)
            
            // 预加载常用图片资源
            preloadCommonImages(context)
            
            Log.d(TAG, "图片加载器预初始化完成")
        } catch (e: Exception) {
            Log.e(TAG, "图片加载器预初始化失败", e)
        }
    }
    
    private fun preInitGlide(context: Context) {
        try {
            // 预初始化Glide，预热缓存
            Glide.get(context).clearMemory()
            
            // 预加载应用图标等常用资源
            val appIcon = context.applicationInfo.icon
            if (appIcon != 0) {
                Glide.with(context.applicationContext)
                    .load(appIcon)
                    .preload()
            }
        } catch (e: Exception) {
            Log.w(TAG, "Glide预初始化失败", e)
        }
    }
    
    private fun preloadCommonImages(context: Context) {
        try {
            // 预加载常用图片资源
            // 这里可以添加更多预加载逻辑
            Log.d(TAG, "常用图片预加载完成")
        } catch (e: Exception) {
            Log.w(TAG, "常用图片预加载失败", e)
        }
    }
    
    companion object {
        private const val TAG = "ImageLoaderInitTask"
    }
}
